from flask import Blueprint, json,request,jsonify #导入蓝图

from db import db1 #导入pymysql


bp_course= Blueprint('course',__name__)#实例化蓝图 


#构造数据结构
def xtree(data):
    #看data有没有，没有直接返回
    if not data:
        return data
    #先循环把data变成字典
    tree={}
    list=[]
    for i in data:
        #把id作为键data作为值
        tree[i['id']]=i
        
    for j in data:
        #获取父id
        pid=j['pid']
        #判断是否为顶级父类
        if pid==0:
            #是顶级父类就直接加到列表里
            list.append(j)
        else:
            #查看父类下有没有子类
            if 'son' not in tree[pid]:
                #如果子类下没有父类就创建一个空列表来盛放子类
                tree[pid]['son']=[]
            #把子类加到列表中
            tree[pid]['son'].append(j)
    return list

@bp_course.route('/cateM',methods=['POST','GET'])
def method_name():
    if request.method=='POST':
        #获取前端传递的数据
        data=request.data
        if data:
            data=json.loads(data)
        else:
            data=request.form
        # 将数据添加到数据库中
        sql="insert into cates values(0,'%s',%d,'%s')"%(data['name'],int(data['pid']),data['params'])
        db1.update(sql)
        #返回
        return jsonify({'code':200})
    elif request.method=='GET':
        #获取分类表所有信息
        sql="select * from cates"
        res=db1.findall(sql)

        data=xtree(res)


        #返回
        return jsonify({'code':200,'list':data})

@bp_course.route('/pagecates')
def pagecates():
    #获取分类表所有信息根据id降序排序
    sql="select * from cates order by id asc"
    # sql = "select c.name,c.params,t.name as tname from cates as c left join cates as t on c.pid=t.id order by c.id desc"
    res=db1.findall(sql)
    return jsonify({'code':200,'list':res})

    
